package alexico;

public class Simbolo {
	private String id;
	private String tipo;
	private String value;
	private String ambito;
	
	public Simbolo(String id, String value, String tipo, String ambito) {
		this.setId(id);
		this.tipo=tipo;
		this.value=value;
		this.ambito = ambito;
	}
	
	public Simbolo(String value, String tipo, String ambito) {
		this.setId("CONSTANTE");
		this.tipo=tipo;
		this.value=value;
		this.ambito = ambito;
	}

	public String getValue() {
		return value;
	}

	public void setValue(String value) {
		this.value = value;
	}

	public String getAmbito() {
		return ambito;
	}

	public void setAmbito(String ambito) {
		this.ambito = ambito;
	}

	public String getTipo() {
		return tipo;
	}

	public void setTipo(String tipo) {
		this.tipo = tipo;
	}
	
	@Override
	public String toString (){
		return tipo + " ["+value + "] "+id + ambito;
	}
	
	public String getId() {
		return id;
	}

	public void setId(String id) {
		this.id = id;
	}
	
	public String toAssembler (){
		String variable="\t";
		if (tipo.contains("CONSTANTE")){
			variable+="_"+id+ambito+ " DD "+value;
		}else if (tipo.contains("Long")){
			variable+="_"+id+ambito+ " DD ?";
		}else if (tipo.contains("Funcion")){
			variable+="_return_de_"+id+"_main"+ " DD 0";
		}
		return variable;
	}
}
